SoftPolish Review
Volume Number: 12
Issue Number: 12
Column Tag: Tools Of The Trade
SoftPolish
By Cliff McCollum, Victoria, British Columbia, Canada
“It Doesn’t Suck Either”
Bare Bones Software is best known for its powerful text editor BBEdit. Anyone who has
been to Apple’s Worldwide Developer Conference has seen their famous BBEdit T-shirts
that proclaim “It Doesn’t Suck.” At the next WWDC, they should distribute SoftPolish
T-shirts that read “It Doesn’t Suck Either.” Bare Bones Software describes SoftPolish
as “a tool that helps software developers deliver clean and consistent applications.” It
easily delivers on this promise, and is a nice example of a program that focuses on doing
one thing and doing it well. SoftPolish quickly locates many of the common, and some of
the uncommon, easily fixed problems that can turn into costly mistakes if they remain
in the final shipping product.
A complete installation of SoftPolish requires a little under one megabyte on your
hard drive, and prefers 1300k of RAM to operate. Version 1.2 is not PowerPC native,
which may give you time for a few extra walks around the cubicles. On a 7200/90, a
typical one megabyte application took about a minute to test. The more errors a file
contains, the longer the test will take.
I tested SoftPolish initially on some of my own projects. I found it quite
surprising that there were a number of not so subtle errors in each application. The
most common thing SoftPolish found was my incorrect placement and sizing of dialog
buttons. I consistently put them too close to my dialog’s borders, and usually made
them too small. SoftPolish also pointed out my numerous typos in menus, strings, and
dialogs. Just for fun, I tested Excel 5. The check itself took three-and-a-half minutes,
and found many fascinating typos, including “itmes,” “returnd,” “seleciton,” and
“measurment.” Acquiring SoftPolish has permitted me to spend more time testing
program code and less time inspecting interfaces.
Learning the Ropes
The well written documentation covers all of the important aspects of the
program. The documentation starts with a discussion of how to use SoftPolish as part of
a formal quality assurance program, and then moves on to discuss the program’s
capabilities and how they are used. A short, but complete tutorial walks you through
each SoftPolish function by testing a small and thoroughly troubled program supplied
on the SoftPolish CD-ROM. There is Technical Support provided via Email, should you
find a need for it.
The SoftPolish Interface
You can almost completely control SoftPolish from a simple six button window
called the SoftPolish Navigator (see Figure 1). The first five buttons in this window
activate the SoftPolish functions in the order they are typically used. The sixth button
displays on-line help. The only SoftPolish function not represented in this window is
“List Resource Strings.” This lists all the strings found in a files resource fork -
including those found in dialog boxes, and Apple Event terminology (“aete”) resources.
Figure 1. The SoftPolish Navigator.
Bare Bones has made SoftPolish quick and easy to use. It is unlikely that you will
ever need to do more than launch SoftPolish, click a few buttons, view the resulting
report, and then return to your development environment. Because SoftPolish is so
quick and easy, you can include an analysis of your application in even the tightest
development schedules.
Diagnostics
The four groups of diagnostics that SoftPolish performs are user interface,
resource validity, spelling checks, and cleanup suggestions. In total, there are 18
individual tests that you turn on or off as your needs dictate.
SoftPolish can only check those aspects of a program that are visible in the
program’s resources. It cannot check for bugs in your code, or detect possible
problems caused by the program at runtime. For this reason, SoftPolish is most
effective if your code uses unmodified resources directly from a resource file.
User Interface
This group tests the elements visible to users.
• Duplicate or misused menu command key equivalents.
• Improperly capitalized menus, menu items, window names, and control titles.
• Interface elements that will not fit within a compact Mac’s 9” screen. [Although
this test may be somewhat outdated. - err]
• Text elements that may not be large enough to display their contents.
• Dialog items check for items outside of the dialog’s display area, overlapping
items, items larger or smaller than Apple recommends, and items that are too
close to a dialog’s border.
• Improper use of non-curly quote marks and apostrophes.
• Incorrect use of three periods in place of the ellipsis character.
• Duplicate spacing between words or sentences.
Some of the warnings generated from these tests can be misleading - for example,
the suggestion that all static text boxes must be a multiple of 16 pixels tall. However,
these warnings can still prove very useful in finding problems that you may not have
otherwise noticed.
Resource Validity
This group tests for things that are not usually visible to users, but that are
required to ensure proper operation.
• Correct use of resource types. For example, if you identify your target file as
being a non-Apple file, SoftPolish will flag improper use of resource types
reserved by Apple Computer.
• Internal consistency checks, such as a “vers” resource that contains inconsistent
version data.
• Compatibility checks identify incomplete icon families, SIZE bits set to